package com.tedu.day02.oop;
/**
 * this关键字---super关键字---使用完全一致
 * 不需要继承---当前类，指代当前
 * 使用方式：调用当前类的属性，方法， 构造器
 *      this.属性  【当前类的属性赋值】
 *                  出现在方法中
 *                  区分当前类的属性与参数”名称“一致
 *      this.方法
 *      this（）      多个有参构造器
 *
 *      笔试题：this和super关键字区别
 *           this 调用本类的属性，方法，构造器
 *           super 调用父类的属性，方法，构造器，存在继承关系，使用super
 *           this（）与super（）
 *           this（）调用本类的其他构造器--构造器首行
 *           super（）调用父类发其他构造器--子类构造器首行
 *
 *           */
public class this关键字 {
    int i; //属性---很少赋值【声明未赋值】---构造器或方法中赋值
    int j; //属性---很少赋值【声明未赋值】---构造器或方法中赋值
    //有参构造器

    public this关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }
//构造器：有参   需求：创建一个参数对象，给i和j赋值【跟super（）一样】
    public this关键字(int i) {
        this(3,4);//调用本类其他有参构造器==传参  i=3
        this.i = i; //常见: this.属性【当前类下属性】=参数
                    //赋值 this.i=1；
    }
   //方法--this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ(){//调取---输出：我是I 我是J
        this.testI();
        System.out.println("我是J");
    }
    public static void main(String[] args) {
        System.out.println(new this关键字(1).i); //属性没有输出语句
       // new this关键字(1).testI();//方法有输出语句
    }
}
